home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / c / pdc / libsrc / stringlib / memcpy.c < prev    next >
Encoding:
C/C++ Source or Header  |  1990-04-07  |  471 b   |  34 lines

  1. /*
  2.  * memcpy - copy bytes
  3.  */
  4.  
  5. #include "config.h"
  6.  
  7. VOIDSTAR
  8. memcpy(dst, src, size)
  9. VOIDSTAR dst;
  10. CONST VOIDSTAR src;
  11. SIZET size;
  12. {
  13.     register char *d;
  14.     register CONST char *s;
  15.     register SIZET n;
  16.  
  17.     if (size <= 0)
  18.         return(dst);
  19.  
  20.     s = src;
  21.     d = dst;
  22.     if (s <= d && s + (size-1) >= d) {
  23.         /* Overlap, must copy right-to-left. */
  24.         s += size-1;
  25.         d += size-1;
  26.         for (n = size; n > 0; n--)
  27.             *d-- = *s--;
  28.     } else
  29.         for (n = size; n > 0; n--)
  30.             *d++ = *s++;
  31.  
  32.     return(dst);
  33. }
  34.